/**
 * 3*3的棋盘，每一格有分数。
 * 轮流下棋，每下一步，拿走当时的分数。
 * 胜利条件有两个：
 * 1. 如果有三子连线，胜利
 * 2. 如果棋盘下满还没有连线，分数多的获胜
 * 很明显DFS
 */
#include <bits/stdc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;
using pii = pair<int, int>;
using vpii = vector<pii>;
using vll = vector<llt>;

template<typename T>
void input(vector<T> & a, int n){
    a.assign(n + 1, {});
    for(int i=1;i<=n;++i) cin >> a[i];
    return;
}

template<typename T>
istream & operator >> (istream & is, vector<T> & v){
    for(auto & i : v) is >> i;
    return is;
}

array<array<llt, 3>, 3> Board;
array<array<int, 3>, 3> Flag;
vll D;
vi Has;

bool isVic(int sn){
    for(int i=0;i<3;++i){
        if(Flag[i][0] == sn and Flag[i][1] == sn and Flag[i][2] == sn) {
            return true;
        }
        if(Flag[0][i] == sn and Flag[1][i] == sn and Flag[2][i] == sn) {
            return true;
        }
    }
    if(Flag[0][0] == sn and Flag[1][1] == sn and Flag[2][2] == sn) {
        return true;
    }
    if(Flag[0][2] == sn and Flag[1][1] == sn and Flag[2][0] == sn) {
        return true;
    }
    return false;
}

int check(){
    llt ans = 0;
    for(int i=0;i<3;++i)for(int j=0;j<3;++j){
        if(1 == Flag[i][j]) ans += Board[i][j];
        else ans -= Board[i][j];
    }
    assert(ans);
    return ans > 0 ? 1 : 2;
}

bool dfs(int sn, int left){
    // cout << left << endl;
    //  for(auto a:Flag){for(auto i: a)cout << i;cout<<endl;}cout<<endl;
    if(0 == left){
       
        auto tmp = check();
        if(1 == tmp) return false;
        return true;
    }

    for(int i=0;i<3;++i)for(int j=0;j<3;++j){
        if(Flag[i][j]) continue;

        Flag[i][j] = sn;
        if(isVic(sn)){
            Flag[i][j] = 0;
            return true;
        }
        bool b = dfs(sn ^ 3, left - 1);
        Flag[i][j] = 0;

        if(not b){            
            return true;
        }
    }
    return false;
}

bool proc() {
    fill(Flag.begin(), Flag.end(), array<int, 3>{0, 0, 0});
    auto b = dfs(1, 9);
    return b;
}

void work(){
    for(auto & a : Board)for(auto & i : a)cin >> i;

    cout << (proc() ? "Takahashi" : "Aoki") << endl;
    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--) work();
    return 0;
}